/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package sistema.ecua911.negocio.patron.visitor;

import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Iterator;
import sistema.ecua911.negocio.AlarmaAgrecion;
import sistema.ecua911.negocio.AlarmaAsesionato;
import sistema.ecua911.negocio.gestores.GestorEntidad;
import sistema.ecua911.negocio.InformarEntidades;
import sistema.ecua911.negocio.Policia;
import sistema.ecua911.negocio.AlarmaIncendio;
import sistema.ecua911.negocio.AlarmaRobo;
import sistema.ecua911.negocio.AlarmaViolacion;
import sistema.ecua911.negocio.Bomberos;
import sistema.ecua911.negocio.CruzRoja;

/**
 *
 * @author pablo
 */
public class Imformar implements Visitor {

    GestorEntidad getidades = new GestorEntidad();
    ArrayList<Policia> policias;
    ArrayList<Bomberos> bomberos;
    ArrayList<CruzRoja> cruzroja;

    public Imformar() throws SQLException {
        policias = getidades.getEtidades("Policia");
        bomberos = getidades.getEtidades("Bomberos");
        cruzroja = getidades.getEtidades("Cruz Roja");
    }

    @Override
    public String visitar(AlarmaIncendio alarmaIncendio) {
        InformarEntidades a = new InformarEntidades();
        Iterator<Policia> p = policias.iterator();
        while (p.hasNext()) {
            a.attach(p.next());
        }

        Iterator<Bomberos> b = bomberos.iterator();
        while (b.hasNext()) {
            a.attach(b.next());
        }
        Iterator<CruzRoja> c = cruzroja.iterator();
        while (c.hasNext()) {
            a.attach(c.next());
        }

        a.notifyObservers();
        return alarmaIncendio.getTipoAlarma();
    }

    @Override
    public String visitar(AlarmaRobo alarmarobo) {
        InformarEntidades a = new InformarEntidades();

        Iterator<Policia> p = policias.iterator();
        while (p.hasNext()) {
            a.attach(p.next());
        }

        a.notifyObservers();
        return alarmarobo.getTipoAlarma();
    }

    @Override
    public String visitar(AlarmaAgrecion aagrecion) {
        InformarEntidades a = new InformarEntidades();
        Iterator<Policia> p = policias.iterator();
        while (p.hasNext()) {
            a.attach(p.next());
        }

        Iterator<CruzRoja> c = cruzroja.iterator();
        while (c.hasNext()) {
            a.attach(c.next());
        }
        a.notifyObservers();
        return aagrecion.getTipoAlarma();
    }

    @Override
    public String visitar(AlarmaAsesionato aasesinato) {
        InformarEntidades a = new InformarEntidades();
        Iterator<Policia> p = policias.iterator();
        while (p.hasNext()) {
            a.attach(p.next());
        }

        Iterator<CruzRoja> c = cruzroja.iterator();
        while (c.hasNext()) {
            a.attach(c.next());
        }
        a.notifyObservers();
        return aasesinato.getTipoAlarma();
    }

    @Override
    public String visitar(AlarmaViolacion violacion) {
        InformarEntidades a = new InformarEntidades();

        Iterator<CruzRoja> c = cruzroja.iterator();
        while (c.hasNext()) {
            a.attach(c.next());
        }
        return violacion.getTipoAlarma();
    }

}
